package listbyorder.access001_100.test88;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/5 11:01
 */
public class Solution3 {

    // 神仙操作二———— 从后向前添加元素
    // 从前向后遍历会造成nums1的覆盖现象
    // 但是从后向前进行遍历填写就不会产生这个问题
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int ai = m + n - 1;
        int c1 = m - 1;
        int c2 = n - 1;
        while (c1 >= 0 && c2 >= 0) {
            if (nums1[c1] < nums2[c2]) {
                nums1[ai--] = nums2[c2--];
            } else {
                nums1[ai--] = nums1[c1--];
            }
        }
        while (c1 >= 0) {
            nums1[ai--] = nums1[c1--];
        }
        while (c2 >= 0) {
            nums1[ai--] = nums2[c2--];
        }
    }
}
